The present invention generally relates to customer premises equipment (xe2x80x9cCPExe2x80x9d) asymmetric digital subscriber line (xe2x80x9cADSLxe2x80x9d) modems. More specifically, the invention relates to CPE ADSL universal serial bus (xe2x80x9cUSBxe2x80x9d) modems.
ADSL USB modems utilize some of the latest advances in computer interface and telecommunications technology. ADSL is a form of DSL (digital subscriber line) technology that is typically utilized for Internet access because of its fast downstream data transmission characteristic. One significant benefit of certain types of DSL technology, such as ADSL, is that it can be conducted over existing telephone lines by using higher frequency signals than common voice-band signals. Thus, in an ADSL application, a telephone line can be utilized as the common, simultaneous transmission medium for Internet data and voice-band data.
USB is a hardware interface technology that offers the capability to connect multiple devices (xe2x80x9cUSB devicesxe2x80x9d) to a computer, such as a personal computer (xe2x80x9cPCxe2x80x9d) or network server, via a common bus (a xe2x80x9cUSB busxe2x80x9d). Many computers are now produced with USB capability, and many computer peripherals are now produced to operate as USB devices, for example, printers, modems, and digital cameras. One significant benefit obtained by the use of USB technology is xe2x80x9chot-swapxe2x80x9d capability, that is, the capability to connect or disconnect USB devices from a computer while its operating system is active. Further, USB devices can be installed without physically making internal access to the computer (e.g., to access a card slot), since the USB bus provides a means for external connections to the computer. Thus, the combination of ADSL and USB technology in a modem implementation can offer significant benefits for the transfer of data between a computer and a telecommunications network.
An ADSL USB modem is a CPE (customer premises equipment) ADSL modem that connects to a computer that has a USB bus. In an ADSL USB network, the ADSL line and the USB bus are the two links that have variable bandwidth (i.e., data transmission capacity). FIG. 1 shows a block diagram of a typical ADSL USB network 100, as is known in the prior art. The network 100 includes several elements. A DSL access multiplexer (DSLAM) 102, typically located at a telephone company central office (CO), intermixes voice signals and data signals (e.g., Internet data) that are transmitted to a customer premises (CP) via the local loop of an ADSL line 108. An ADSL USB modem 104 interfaces the ADSL line 108 to a USB bus 110. A computer 106 connects to the ADSL USB modem 104 via the USB bus 110 and typically transceives data signals with the DSLAM 102. Although not shown, other CPE devices capable of transceiving voice or data signals may also be connected to the ADSL line 108 in the network 100. Furthermore other CPE USB devices (not shown) may be connected to the computer 106 via the USB bus 110.
In a typical communications network, such as the ADSL USB network 100, there may be several other components that are intermediate between the DSLAM 102 and the local loop of an ADSL line 108, for example, a main distribution frame (MDF). In FIG. 1 as well as in subsequent figures that are applicable, the existence of such components is acknowledged by a break in the ADSL line 108 between the DSLAM 102 and the ADSL USB modem 104. Such additional components will not be shown in the figures or be described since the discussion of them is not needed to facilitate the description of the present invention.
As previously mentioned, the ADSL line and the USB bus are the two links in an ADSL USB network, such as the network 100 of FIG. 1, that have variable bandwidth. For example, in a typical ADSL USB network, the data rate (i.e., the data transmission speed) of the ADSL line can be described by the following relational equation: 32 Kbpsxe2x89xa6Data Ratexe2x89xa68.192 Mbps, where Kbps is kilo-bits per second and Mbps is mega-bits per second. It is noted that the actual data rate of a given: ADSL line is dependent on several factors, including line quality and level of service, and a data rate above the typical 8.192 Mbps may be available in some networks. Furthermore, the available bandwidth on a given isochronous (i.e., time dependent) channel of the USB bus in a typical ADSL USB network can be described by the following relational equation: 0 bpsxe2x89xa6Available Bandwithxe2x89xa68.184 Mbps. It is noted that the actual isocohronous bandwidth available on a given channel is dependent on several factors, including the number of USB devices connected to the USB bus. From the two relational equations above, it can be seen that it is possible for the ADSL line data rate to exceed the available USB bus bandwidth.
In order for the end-to-end system of an ADSL line and a USB bus to operate efficiently, a certain relationship must be maintained between them. Specifically, the USB bus bandwidth that is allocated to the interfacing ADSL USB modem must be somewhat greater than the ADSL line data rate If this relationship is not maintained, data being transmitted to the computer via the ADSL USB network (e.g., network 100 of FIG. 1) will eventually overflow the ADSL USB modem buffer and be lost, an event commonly referred to in the art as xe2x80x9cbottle-neckingxe2x80x9d. When such an event occurs, the upper layer protocols, such as TCP/IP (Transmission Control Protocol/Internet Protocol), will detect an error and request re-transmission, resulting in degraded system throughput.
An important aspect of a USB bus, as previously mentioned, is that it can be shared to connect multiple USB devices to a computer. There are several data transfer modes that can be implemented to transfer data over a USB bus. Three of these modes, bulk, interrupt, and isochronous, are typically very applicable for high bandwidth USB devices (i.e., devices that consume a large portion of the total USB bandwidth). In practice, such devices include those that operate in the 0.5 Mbps to 8 Mbps range. In this regard, FIGS. 2A-2C show illustrations of typical signal formats for bulk, interrupt, and isochronous transfer modes, as are known in the prior art.
FIG. 2A shows an illustration of a typical bulk transfer mode signal format 200, as is known in the prior art. The bulk mode format 200 includes token packets 202, 206, data packets 203, 207, and hand-shake packets 204, 208. Each packet is identified by a packet ID (PID). For example, token packet 202 has an xe2x80x9cINxe2x80x9d PID which identifies the packet as input token packet (i.e., from a USB device to the computer) and token packet 206 has an xe2x80x9cOUTxe2x80x9d PID which identifies the packet as output token packet (i.e., from the computer to a USB device). As shown in FIG. 2A, other PID""s exist to identify packets in the bulk mode format 200, but further discussion of such PID""s is not necessary for the description of the present invention. FIG. 2B shows an illustration of a typical interrupt transfer mode signal format 210, as is known in the prior art. Similar to the bulk mode format 200 (FIG. 2A), the interrupt mode format 210 includes a token packet 211, a data packet 212, and a hand-shake packet 213. In an early version of the interrupt mode format 210, only input token packets are available (as shown), but later versions may also have output token packets as well. Finally, FIG. 2C shows an illustration of a typical isochronous transfer mode format 220, as is known in the prior art. As is shown, the isochronous mode format is different from the bulk mode 200 or interrupt mode 210 formats. This is because isochronous transfer mode is time-dependent. Thus, the isochronous mode format 220 has only a token packet 221 and a data packet 222 to give it less signal overhead.
Isochronous transfer mode differs from bulk or interrupt transfer modes (which, as stated above, are quite similar) in the way that transfers are scheduled by the computer and in the amount of protocol overhead that transfers incur. Bandwidth for isochronous mode transfers is allocated by the system from a fixed pool of 1023 bytes per each 1 millisecond USB frame. Once isochronous bandwidth is assigned to a particular USB device, the allocation is essentially guaranteed to the extent possible, and isochronous transfers have the lowest protocol overhead. In contrast, bandwidth for bulk or interrupt mode transfers is not assigned or guaranteed. These transfers are dynamically scheduled on a per frame basis and obtain whatever amount of bandwidth that is available. In this regard, FIG. 2D shows a typical USB frame format 230, as is known in the prior art. As is shown, the USB frame 230 has a 1 millisecond time length. The USB frame 230 includes a start-of-frame (SOF) 231, isochronous data 232, interrupt data 233, bulk data 234, where this data corresponds to signal formats of FIGS. 2A-2C described above.
Existing implementations of ADSL USB modems use bulk transfer mode for downstream data transmission (i.e., from a DSLAM to a computer). It is believed that one reason bulk transfer mode is used in existing implementations is an effort to provide the highest probability of inter-operation with other USB devices connected to the USB bus. However, this use of bulk transfer mode poses at least one significant problem to the efficient operation of an ADSL USB network. There is a possibility of data arriving from a DSLAM at a rate higher than can be delivered over the USB bus by the ADSL USB modem. This is because when multiple USB devices are connected to a computer via a USB bus by implementing bulk transfer mode, the bandwidth available to any given device is not guaranteed and is not even known prior to a transfer. Thus, the problem of data loss and loss of throughput may occur unpredictably in existing implementations of ADSL USB modems when the ADSL line bandwidth exceeds the USB bus bandwidth during downstream data transmission. This problem can be partially resolved with the use of a larger system receive buffer at the ADSL USB modem. However, the addition of a larger buffer increases the cost of the system and causes increased latency (i.e., delay of data transfer), which in some situations can also degrade system throughput. Furthermore, the use of a larger buffer can not ensure the prevention of data loss in the event that the long-term average data receive-rate by the modem is too high.
Therefore, there is a need for a system and method to manage the ADSL USB bandwidth negotiation of an ADSL USB modem to prevent data transfer events where the ADSL line data rate exceeds the USB bus bandwidth thereby resulting in data loss and loss of throughput (i.e., bottle-necking). Furthermore, there is a need for such a system and method that can be provided at an economic cost and that does not cause increased latency in the ADSL USB network.
Certain objects, advantages, and novel features of the invention will be set forth in part in the description that follows and in part will become apparent to those skilled in the art upon examination of the following or may be learned with the practice of the invention. The objects and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the appended claims.
To achieve various objects and advantages, the present invention is directed to a novel system and method for ADSL USB bandwidth negotiation of an ADSL USB modem. Broadly, the present invention manages the ADSL USB bandwidth negotiation of a modem to prevent data loss and throughput loss that results from the ADSL line data rate exceeding the USB bus bandwidth during data transfers in an ADSL USB network. In accordance with a preferred embodiment of the present invention, a system is provided for the negotiation of ADSL and USB bandwidth in an ADSL USB network that includes a modem that is configured to transfer data between an ADSL line and a USB bus. Further, the modem is configured to receive an ADSL line rate setting, submit an isochronous bandwidth request to a computer, reduce the isochronous bandwidth request in response to the availability of isochronous bandwidth, modify the ADSL line rate setting in response to the availability of isochronous bandwidth, and modify the USB bus transfer mode in response to the availability of isochronous bandwidth.
In accordance with another preferred embodiment of the present invention, a method for ADSL USB bandwidth negotiation by an ADSL USB modem is provided that includes the step of receiving an ADSL line rate setting. Further, the method includes the steps of submitting an isochronous bandwidth request to a computer, reducing the isochronous bandwidth request in response to the availability of isochronous bandwidth, modifying the ADSL line rate setting in response to the availability of isochronous bandwidth, and modifying the USB bus transfer mode of the ADSL USB modem in response to the availability of isochronous bandwidth.
One advantage of a preferred embodiment of the present invention is that it prevents data loss and throughput loss that results from the ADSL line data rate exceeding the USB bus bandwidth during data transfers in an ADSL USB network, a phenomena also known as bottle-necking. Another advantage of a preferred embodiment of the present invention is that it provides a system and method that prevents bottlenecking in ADSL USB network at an economic cost and without causing increased latency in the ADSL USB network.
Other objects, features, and advantages of the present invention will become apparent to one skilled in the art upon examination of the following drawings and detailed description. It is intended that all such additional objects, features, and advantages be included herein within the scope of the present invention, as defined by the claims.